【新機能】AWS CLIでRootのアクセスキーやセキュリティ認証情報の発行状況が確認できるようになりました【セキュリティ】
こんにちは、せーのです。今日はセキュリティ上確認しておく必要があるrootアカウントの情報についての新項目追加のお話です。
rootのアクセスキーは作らないほうが良い
セキュリティを考える上で普段の運用に対して費用も含めた全ての権限が付いているrootアカウントを使うべきではありません。そこで普段はIAMユーザーを作成し、権限に応じてIAM Groupを作り、ユーザーをそこに所属させて運用させます。 つまり普段使わないrootアカウントに対してアクセスキーの発行はもちろんするべきではなく、もし発行していたらそれは削除しておいた方が安全です。セキュリティ認証情報も同じですね。万が一それが漏れる事を考えると管理リスクがありますので、そもそも作らない、というのがセキュリティ的には正解です。セキュリティ保全の観点から言うとrootに限らず「要らない認証情報は速攻削除」が基本方針です。
rootのキー情報の確認方法
では現在rootアカウントに対してアクセスキーが発行されているのかどうかはどう確認するのでしょうか。なんと今までは「実際にrootでAWS Management Consoleにログインする」しか方法がありませんでした。そして手元にキー情報があるけどこれはrootのものなんだろうか、これを確認するには「使ってみる」しか方法がなかったわけです。んーなかなかにリスキーです。
get-account-summary
そこで今回CLIとIAM SDKに新たな項目が加わりました。get-account-summaryはアカウントとIAMに関係する情報が返ってきます。今回話題になっている「rootのアカウントアクセスキー」はAccountAccessKeysPresent、「rootのアカウントセキュリティ認証情報」はAccountSigningCertificatesPresentで表されます。この値が0であれば発行されていない、ということです。
やってみる
では実際に確認してみましょう。まずはAWS CLIか各SDKの最新版をインストールします。今回はAWS CLIを使おうと思います。インストールしていない方はインストールして頂いて、インストールしている方は最新版にアップデートしてください。
$ sudo pip install --upgrade awscli Password: Downloading/unpacking awscli from https://pypi.python.org/packages/source/a/awscli/awscli-1.7.4.tar.gz#md5=afd434c96ef778a0fbfb8a7d2827af2b Downloading awscli-1.7.4.tar.gz (288kB): 288kB downloaded Running setup.py (path:/private/tmp/pip_build_root/awscli/setup.py) egg_info for package awscli ......略 $ aws --version aws-cli/1.7.4 Python/2.7.6 Darwin/14.1.0
内容を確認します。今回使うのはget-account-sumaryです。
$ aws iam get- get-account-authorization-details get-open-id-connect-provider get-account-password-policy get-role get-account-summary get-role-policy get-credential-report get-saml-provider get-group get-server-certificate get-group-policy get-user get-instance-profile get-user-policy get-login-profile $ aws iam get-account-summary { "SummaryMap": { "UsersQuota": 5000, "GroupsQuota": 100, "InstanceProfiles": 4, "SigningCertificatesPerUserQuota": 2, "AccountAccessKeysPresent": 0, "RolesQuota": 250, "RolePolicySizeQuota": 10240, "AccountSigningCertificatesPresent": 0, "Users": 2, "ServerCertificatesQuota": 20, "ServerCertificates": 0, "AssumeRolePolicySizeQuota": 2048, "Groups": 3, "MFADevicesInUse": 2, "Roles": 10, "AccountMFAEnabled": 1, "MFADevices": 3, "GroupsPerUserQuota": 10, "GroupPolicySizeQuota": 5120, "InstanceProfilesQuota": 100, "AccessKeysPerUserQuota": 2, "Providers": 0, "UserPolicySizeQuota": 2048 } } $
簡単ですね。見る項目はAccountAccessKeysPresentとAccountSigningCertificatesPresentです。私の場合はどちらも0でした。もし1になっている方がいましたら、アプリケーション等を確認して頂き、すぐにそのキーを削除してください。
まとめ
いかがでしたでしょうか。こういうのはついつい忘れがちになってしまうポイントですので、一度調べておきましょう。